import request from "@/utils/request";
import {
  UserForm,
  UserProfileVO,
  UserProfileForm,
  PasswordChangeForm,
  MobileBindingForm,
  EmailBindingForm,
} from "../system/user";

const USER_BASE_URL = "/core/tStockDetailLocation";

const basicProcessAPI = {
  /**
   * 库存查询-库存
   *
   * @param queryParams 查询参数
   */
  getPage(queryParams: basicProcessPageQuery) {
    let query = encodeURIComponent(JSON.stringify({ ...queryParams }));
    return request<any, PageResult<basicProcessPageVO[]>>({
      url: `/core/process/getProcessList?object=${query}`,
      method: "get",
    });
  },

  /**
   * 库存查询-库存total
   *
   * @param queryParams 查询参数
   */
  getTotal(queryParams: basicProcessPageQuery) {
    let query = encodeURIComponent(JSON.stringify({ ...queryParams }));
    return request<any, totalVO>({
      url: `/core/tStockHead/getTStockDetailTotal?object=${query}`,
      method: "get",
    });
  },

  /**
   * 获取用户表单详情
   *
   * @param userId 用户ID
   * @returns 用户表单详情
   */
  getFormData(userId: number) {
    return request<any, UserForm>({
      url: `${USER_BASE_URL}/${userId}/form`,
      method: "get",
    });
  },

  //新增/修改提交
  submitDialog(data: any) {
    return request({
      url: `/core/process/saveOrUpdateProcess`,
      method: "post",
      data: data,
    });
  },
  //删除
  delDialog(data: any) {
    return request({
      url: `/core/process/deleteProcess`,
      method: "post",
      data: data,
    });
  },

  /**
   * 获取设备列表
   */
  getDeviceList(queryParams: DevicePageQuery) {
    const query = encodeURIComponent(JSON.stringify({ ...queryParams }));
    return request<any, PageResult<DeviceVO[]>>({
      url: `/core/eqpt/getEqptLists?object=${query}`,
      method: "get",
    });
  },
};

export default basicProcessAPI;
/**
 * 设备列表分页请求
 */
export interface DevicePageQuery extends PageQuery {
  bindProcess?: boolean;
  excludeEqptCode?: string | undefined;
}

/**
 * 设备属性项
 */
export interface DeviceAttribute {
  /** 属性编码 */
  attrCode: string;
  /** 属性ID */
  attrId: number;
  /** 属性名称 */
  attrName: string;
  /** 属性值 */
  attrValue: string;
  /** 是否必填项 (0-否 1-是) */
  isRequired: number;
  /** 排序号 */
  sortNo: number;
}

/**
 * 设备信息
 */
export interface DeviceVO {
  /** 设备属性列表 */
  attributes: DeviceAttribute[];
  /** 是否绑定工艺流程 */
  bindProcess: boolean;
  /** 设备编码 */
  code: string;
  /** 创建时间 */
  createTime: string;
  /** 关联设备编码列表 */
  eqptCodes: string[];
  /** 设备ID */
  id: number;
  /** 删除标记 (0-正常 1-删除) */
  isDelete: number;
  /** 最后修改人名称 */
  modifyName: string;
  /** 最后修改时间 */
  modifyTime: string;
  /** 最后修改人ID */
  modifyUser: number;
  /** 设备名称 */
  name: string;
  /** 分页页码 */
  pageNum: number;
  /** 分页大小 */
  pageSize: number;
  /** 备注信息 */
  remark: string;
  /** 设备状态 (0-正常 1-停用) */
  status: number;
  /** 时段范围配置 */
  timeScopes: string[];
  /** 设备类型 */
  type: string;
}

/**
 * 用户分页查询对象
 */
export interface basicProcessPageQuery extends PageQuery {
  /** 工序名称 */
  name?: string;

  /** 创建时间 */
  timeScopes?: string;
}

/** 订单分页对象 */
export interface basicProcessPageVO {
  /**
   * 筐码
   */
  basketCode: string;

  /**
   * 标签码
   */
  tagCode: string;

  /**
   * 产品名称
   */
  productName: string;

  /**
   * 供应商
   */
  supplier: string;

  /**
   * 原料入库时间
   */
  rawMaterialInboundTime: string;

  /**
   * 生产时间
   */
  productionTime: string;

  /**
   * 生产工序
   */
  productionProcess: string;

  /**
   * 质检员
   */
  qualityInspector: string;

  /**
   * 配送时间
   */
  deliveryTime: string;
}

export interface totalVO {
  //总计
  qtyTotal?: number;
}
